#ifndef _TYPE_H_
#define _TYPE_H_
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>          
#include <sys/socket.h>
#include <string.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <stdbool.h>

typedef struct sockaddr Addr;
typedef struct sockaddr_in Addr_in;
#define ErrorExit(msg) do{ perror(msg);\
	exit(EXIT_FAILURE);} while(0)

//定义函数指针类型（bind 、connect）
typedef int (*func_socket) (int, const Addr *, socklen_t);
//定义函数指针类型（read、write）
typedef ssize_t (*func_socket_data)(int, void *, size_t);

//套接字初始化
int socketInit(char *ip, char *port, bool serverflag);
//socket数据传输
int socketTransport(int sockfd, char * buff, size_t len, func_socket_data fun);
//文件读写
int fileHandler();
//读取本地配置文件
void readConfig(char *buff, FILE *fp, char **ip, char **port);

#endif
